/**
 * Flash實現文件上傳并帶進度條中使用到的JavaScript類
 * 調用UploadFile.select()時要先檢測UploadFile.config.flashLoaded是否為true
 */
var UploadFile ={
	$      : function(id) {
		return document.getElementById(id);
	},
	config : {
		id          : 'ly_' + Math.floor(Math.random() * 1000),
		path        : '',                 // 要提交到的PHP處理文件
		flashLoaded : false,              // Flash是否已經被載入
		progress    : function() {}
	},
	cache : {
		flash : null,                    // 被載入的Flash對象
		path  : config.path || '/resources/charts/upload.swf'
	},
	loadFlash : function() {
		var content = [
			'<object ',
				'id="' + this.config.id + '"',
				'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ',
				'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" ',
				'width="0" ',
				'height="0" >',
				'<param name="allowScriptAccess" value="always" />',
				'<param name="allowFullScreen" value="false" />',
				'<param name="movie" value="' + this.config.path + '" />',
				'<param name="quality" value="high" />',
				'<param name="bgcolor" value="#ffffff" />',
				'<embed ',
					'src="' + this.config.path + '" ',
					'quality="high" ',
					'bgcolor="#ffffff" ',
					'width="0" ',
					'height="0" ',
					'name="' + this.config.id + '" ',
					'align="center" ',
					'allowScriptAccess="always" ',
					'allowFullScreen="false" ',
					'type="application/x-shockwave-flash" ',
					'pluginspage="http://www.macromedia.com/go/getflashplayer" />',
			'</object>'].join(''),
			container = document.createElement('div');
		
		container.style.display = 'none';
		container.innerHTML     = content;
		
		document.body.appendChild(container);
		
		return this;
	},
	
	// 設置Flash載入狀態
	setLoadStatus : function() {
		this.config.flashLoaded = true;
		return this;
	},
	
	getPath : function() {
		return this.config.path;
	},
	
	// 上傳文件
	selectFile : function() {
		this.cache.flash.browser();
		this.cache.flash.upload();
		return this;
	},
	
	// 取消上傳
	cancel : function() {
		this.cache.flash.cancel();
		return this;
	},
	
	// 初始化上傳插件
	init : function(config /* Object */) {
		this.config.path     = config.path || 'uploadFile.php';
		this.config.progress = config.progress || function() {};
		return this;
	}
};

/**
UploadFile.init({
	path : 'uploadFile.php',
	// 上傳時的回調函數，返回一個參數，包含上傳時的文件信息
	progress : function(config) {
		config.finish = false;
		config.bytesTotal = '總文件大小';
		config.bytesLoaded = '已經上傳的文件大小';
	};
});
UPloadFile.upload();
 */